import request from "@/utils/request";

const AUTH_BASE_URL = "";

const AuthAPI = {
  /** 登录接口*/
  login(data: LoginData) {
    return request<any, LoginResult>({
      url: `${AUTH_BASE_URL}/auth/admin/login/pwd`,
      method: "POST",
      data: {
        account: data.username,
        login_secret: data.password,
      },
    });
  },

  /** 刷新 token 接口*/
  refreshToken(refreshToken: string) {
    return request<any, LoginResult>({
      url: `${AUTH_BASE_URL}/auth/admin/login/refreshToken`,
      method: "post",
      data: { refreshToken: refreshToken },
      headers: {
        Authorization: "no-auth",
      },
    });
  },

  /** 注销接口*/
  logout() {
    return request({
      url: `${AUTH_BASE_URL}/auth/admin/login/out`,
      method: "post",
    });
  },

  /** 获取验证码接口*/
  // getCaptcha() {
  //   return request<any, CaptchaResult>({
  //     url: `${AUTH_BASE_URL}/captcha`,
  //     method: "get",
  //   });
  // },
};

export default AuthAPI;

/** 登录请求参数 */
export interface LoginData {
  /** 用户名 */
  username: string;
  /** 密码 */
  password: string;
  /** 验证码缓存key */
  captchaKey: string;
  /** 验证码 */
  captchaCode: string;
}

/** 登录响应 */
export interface LoginResult {
  jwt: any;
  refresh_token: any;
  /** 访问令牌 */
  accessToken: string;
  /** 刷新令牌 */
  refreshToken: string;
  /** 令牌类型 */
  tokenType: string;
  /** 过期时间(秒) */
  expiresIn: number;
}

/** 验证码响应 */
export interface CaptchaResult {
  /** 验证码缓存key */
  captchaKey: string;
  /** 验证码图片Base64字符串 */
  captchaBase64: string;
}
